package org.study.mybatis.dynamic.boot.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.*;
import org.study.mybatis.dynamic.boot.model.Ds2User;

/**
 * 注解 @DS 可以标注在方法上和类上，同时存在的话则方法注解优先于类注解。
 * 注解 @DS 可以标注在 service 实现类或 mapper 接口方法上，但不建议同时在 service 和 mapper 使用，可能会有问题
 *
 * @author Administrator
 * @date 2021-11-29
 */
@DS("ds2")
public interface Ds2UserMapper {
    /**
     * 方法功能描述
     *
     * @param name
     * @return Ds2User
     */
    @Select("SELECT * FROM t_user WHERE name = #{name}")
    Ds2User findByName(@Param("name") String name);

    /**
     * 方法功能描述
     *
     * @return int
     */
    @Select("SELECT count(*) FROM t_user")
    int count();

    /**
     * 方法功能描述
     *
     * @param name
     * @param age
     * @return int
     */
    @Insert("INSERT INTO t_user(name, age) VALUES(#{name}, #{age})")
    int insert(@Param("name") String name, @Param("age") Integer age);

    /**
     * 方法功能描述
     *
     * @return int
     */
    @Delete("DELETE FROM t_user")
    int deleteAll();

    /**
     * 方法描述
     *
     * @param
     * @return int
     */
    @Update("truncate table t_user")
    int truncateTable();
}
